package dk.simonvogensen.itodo.client.backend;

import com.google.gwt.user.client.rpc.AsyncCallback;
import dk.simonvogensen.itodo.shared.model.Config;
import dk.simonvogensen.itodo.shared.model.TodoItem;

import java.util.List;

public interface ITodoBackend {
    void getTodoItemList(int startIndex, int fetchSize, AsyncCallback<List<TodoItem>> callback);

    void createTodo(AsyncCallback<String> callback);

    void updateTodo(TodoItem item, AsyncCallback<Void> callback);

    void deleteTodo(TodoItem item, AsyncCallback<Void> callback);

    void updateConfig(Config config, AsyncCallback<String> callback);

    void getLatestTodoItem(AsyncCallback<TodoItem> callback);

    void importData(String importString, AsyncCallback<Void> callback);

    void init();
}
